home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / onlineco / files / ImageMagick-6.0.1-Q16-windows-dll.exe / {app} / PerlMagick / demo / composite.pl < prev    next >
Encoding:
Perl Script  |  2003-03-25  |  1.6 KB  |  45 lines

  1. #!/usr/local/bin/perl
  2.  
  3. use Image::Magick;
  4.  
  5. #$font = '-adobe-helvetica-medium-r-normal--25-180-100-100-p-130-iso8729-1';
  6. #$font = 'Times';
  7. $font = 'Generic.ttf';
  8.  
  9. $image = Image::Magick->new();
  10. $smile = Image::Magick->new();
  11. $smile->Read('smile.gif');
  12. $smile->Set(background=>'none');
  13. $x = 100;
  14. $y = 100;
  15. for ($angle=0; $angle < 360; $angle+=30)
  16. {
  17.   my ($thumbnail);
  18.  
  19.   print "angle $angle\n";
  20.   $thumbnail=Image::Magick->new(size=>"600x600",pointsize=>24,font=>$font,
  21.     fill=>'black');
  22.   $thumbnail->Read("xc:white");
  23.   $thumbnail->Draw(primitive=>'line',points=>"300,100 300,500",stroke=>'#600');
  24.   $thumbnail->Draw(primitive=>'line',points=>"100,300 500,300",stroke=>'#600');
  25.   $thumbnail->Draw(primitive=>'rectangle',points=>"100,100 500,500",
  26.     fill=>'none',stroke=>'#600');
  27.   $thumbnail->Composite(image=>$smile,gravity=>"NorthWest",x=>$x,y=>$y,
  28.     rotate=>$angle);
  29.   $thumbnail->Composite(image=>$smile,gravity=>"North",y=>$y,rotate=>$angle);
  30.   $thumbnail->Composite(image=>$smile,gravity=>"NorthEast",x=>$x,y=>$y,
  31.     rotate=>$angle);
  32.   $thumbnail->Composite(image=>$smile,gravity=>"West",x=>$x,rotate=>$angle);
  33.   $thumbnail->Composite(image=>$smile,gravity=>"Center",rotate=>$angle);
  34.   $thumbnail->Composite(image=>$smile,gravity=>"East",x=>$x,rotate=>$angle);
  35.   $thumbnail->Composite(image=>$smile,gravity=>"SouthWest",x=>$x,y=>$y,
  36.     rotate=>$angle);
  37.   $thumbnail->Composite(image=>$smile,gravity=>"South",y=>$y,rotate=>$angle);
  38.   $thumbnail->Composite(image=>$smile,gravity=>"SouthEast",x=>$x,y=>$y,
  39.     rotate=>$angle);
  40.   push(@$image,$thumbnail);
  41. }
  42. $image->Set(delay=>20);
  43. $image->Write("composite.miff");
  44. $image->Animate();
  45.